// 回调来做的 改进 async 
// util node 内置库 工具
const { promisify }=require('util');  // 快速包装成promise
const {pipeline} =require('stream');
const {createGzip}=require('zlib');
const {createWriteStream,createReadStream}=require('fs');

// node 异步无阻塞 
// node 将 js 带到了后端，
// 异步的好处是什么 ： 性能会更好
// php 写入数据库 ， block 阻塞线程
// js 写入数据库 event 
// node pipeline callback 异步

const pipe=promisify(pipeline);
async function do_gzip(input,output){
    const gzip=new createGzip();
    const source=createReadStream(input);
    const destination = createWriteStream(output);
    await pipe(source,gzip,destination);
}

do_gzip('index.html','index.html.gz')
    .catch((err)=>{
        console.log(err);
    })

// pipe()
//     .then()